package cc11001100.snakeyaml;

import java.util.ArrayList;
import java.util.List;

/**
 * @author CC11001100
 */
public class ArrayListHashCodeSOE {

    public static void main(String[] args) {
        List<Object> l = new ArrayList<>();
        l.add(l);
        System.out.println(l.hashCode());

        // Output:
        // Exception in thread "main" java.lang.StackOverflowError
        //	at java.base/java.util.ArrayList.hashCode(ArrayList.java:582)
        //	at java.base/java.util.ArrayList.hashCodeRange(ArrayList.java:595)
        //	at java.base/java.util.ArrayList.hashCode(ArrayList.java:582)
        //	at java.base/java.util.ArrayList.hashCodeRange(ArrayList.java:595)
        //	at java.base/java.util.ArrayList.hashCode(ArrayList.java:582)
        //	at java.base/java.util.ArrayList.hashCodeRange(ArrayList.java:595)
        //	at java.base/java.util.ArrayList.hashCode(ArrayList.java:582)
        //	at java.base/java.util.ArrayList.hashCodeRange(ArrayList.java:595)
        //	at java.base/java.util.ArrayList.hashCode(ArrayList.java:582)
        //	at java.base/java.util.ArrayList.hashCodeRange(ArrayList.java:595)
        //	at java.base/java.util.ArrayList.hashCode(ArrayList.java:582)
        //	at java.base/java.util.ArrayList.hashCodeRange(ArrayList.java:595)
    }

}
